import { UserRole } from '@prisma/client'

/**
 * JWT 载荷接口
 */
export interface JwtPayload {
  /** 用户ID */
  sub: string

  /** 用户名 */
  username: string

  /** 邮箱 */
  email: string

  /** 用户角色 */
  role: UserRole

  /** 签发时间 */
  iat?: number

  /** 过期时间 */
  exp?: number

  /** 会话ID */
  sessionId?: string
}

/**
 * 认证用户信息接口
 */
export interface AuthUser {
  /** 用户ID */
  id: string

  /** 用户名 */
  username: string

  /** 邮箱 */
  email: string

  /** 昵称 */
  nickname?: string

  /** 用户角色 */
  role: UserRole

  /** 头像URL */
  avatar?: string

  /** 是否激活 */
  isActive: boolean

  /** 邮箱是否已验证 */
  emailVerified?: boolean

  /** 是否启用双因子认证 */
  twoFactorEnabled?: boolean

  /** 创建时间 */
  createdAt: Date

  /** 更新时间 */
  updatedAt: Date
}
